package com.neuedu.nep.controller;

import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.stage.Stage;

public abstract class BaseController implements Initializable {
    // 场景激活时调用（首次显示或从其他场景返回）
    public void onSceneActivated(Object... params) {
        // 子类实现具体逻辑
    }

    // 场景离开时调用（切换到其他场景）
    public void onSceneDeactivated() {
        // 子类实现清理逻辑
    }

    // 获取主Stage引用
    protected Stage getPrimaryStage() {
        return (Stage) ((Node) getView()).getScene().getWindow();
    }

    // 获取视图根节点
    protected abstract Parent getView();
}